﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace INSTA.Concepts.StrategyPattern
{
    /// <summary>
    /// Public base class for all strategies.
    /// </summary>
    /// <typeparam name="T">
    ///     the type of the object the current strategy
    ///     is going to run on.
    /// </typeparam>
    public abstract class AbstractStrategy<T>
    {
        /// <summary>
        /// Executes the current strategy on the object 
        /// contained in the "target" parameter.
        /// </summary>
        /// <param name="target">The target.</param>
        public abstract void Execute(T target);
    }

}
